home *** CD-ROM | disk | FTP | other *** search
/ Supercompiler 1997 / SUPERCOMPILER97.iso / Delphi 3.0 / DATA.Z / main.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1997-01-30  |  4.8 KB  |  187 lines

  1. unit Main;
  2.  
  3. interface
  4.  
  5. uses Windows, SysUtils, Classes, Graphics, Forms, Controls, Menus,
  6.   StdCtrls, Dialogs, Buttons, Messages, ExtCtrls, ComCtrls;
  7.  
  8. type
  9.   TMainForm = class(TForm)
  10.     MainMenu1: TMainMenu;
  11.     File1: TMenuItem;
  12.     FileNewItem: TMenuItem;
  13.     FileOpenItem: TMenuItem;
  14.     FileCloseItem: TMenuItem;
  15.     Window1: TMenuItem;
  16.     Help1: TMenuItem;
  17.     N1: TMenuItem;
  18.     FileExitItem: TMenuItem;
  19.     WindowCascadeItem: TMenuItem;
  20.     WindowTileItem: TMenuItem;
  21.     WindowArrangeItem: TMenuItem;
  22.     HelpAboutItem: TMenuItem;
  23.     OpenDialog: TOpenDialog;
  24.     FileSaveItem: TMenuItem;
  25.     FileSaveAsItem: TMenuItem;
  26.     Edit1: TMenuItem;
  27.     CutItem: TMenuItem;
  28.     CopyItem: TMenuItem;
  29.     PasteItem: TMenuItem;
  30.     WindowMinimizeItem: TMenuItem;
  31.     SpeedPanel: TPanel;
  32.     OpenBtn: TSpeedButton;
  33.     SaveBtn: TSpeedButton;
  34.     CutBtn: TSpeedButton;
  35.     CopyBtn: TSpeedButton;
  36.     PasteBtn: TSpeedButton;
  37.     ExitBtn: TSpeedButton;
  38.     StatusBar: TStatusBar;
  39.     procedure FormCreate(Sender: TObject);
  40.     procedure FileNewItemClick(Sender: TObject);
  41.     procedure WindowCascadeItemClick(Sender: TObject);
  42.     procedure UpdateMenuItems(Sender: TObject);
  43.     procedure WindowTileItemClick(Sender: TObject);
  44.     procedure WindowArrangeItemClick(Sender: TObject);
  45.     procedure FileCloseItemClick(Sender: TObject);
  46.     procedure FileOpenItemClick(Sender: TObject);
  47.     procedure FileExitItemClick(Sender: TObject);
  48.     procedure FileSaveItemClick(Sender: TObject);
  49.     procedure FileSaveAsItemClick(Sender: TObject);
  50.     procedure CutItemClick(Sender: TObject);
  51.     procedure CopyItemClick(Sender: TObject);
  52.     procedure PasteItemClick(Sender: TObject);
  53.     procedure WindowMinimizeItemClick(Sender: TObject);
  54.     procedure FormDestroy(Sender: TObject);
  55.   private
  56.     { Private declarations }
  57.     procedure CreateMDIChild(const Name: string);
  58.     procedure ShowHint(Sender: TObject);
  59.   public
  60.     { Public declarations }
  61.   end;
  62.  
  63. var
  64.   MainForm: TMainForm;
  65.  
  66. implementation
  67.  
  68. {$R *.DFM}
  69.  
  70. uses ChildWin;
  71.  
  72. procedure TMainForm.FormCreate(Sender: TObject);
  73. begin
  74.   Application.OnHint := ShowHint;
  75.   Screen.OnActiveFormChange := UpdateMenuItems;
  76. end;
  77.  
  78. procedure TMainForm.ShowHint(Sender: TObject);
  79. begin
  80.   StatusBar.SimpleText := Application.Hint;
  81. end;
  82.  
  83. procedure TMainForm.CreateMDIChild(const Name: string);
  84. var
  85.   Child: TMDIChild;
  86. begin
  87.   { create a new MDI child window }
  88.   Child := TMDIChild.Create(Application);
  89.   Child.Caption := Name;
  90. end;
  91.  
  92. procedure TMainForm.FileNewItemClick(Sender: TObject);
  93. begin
  94.   CreateMDIChild('NONAME' + IntToStr(MDIChildCount + 1));
  95. end;
  96.  
  97. procedure TMainForm.FileOpenItemClick(Sender: TObject);
  98. begin
  99.   if OpenDialog.Execute then
  100.     CreateMDIChild(OpenDialog.FileName);
  101. end;
  102.  
  103. procedure TMainForm.FileCloseItemClick(Sender: TObject);
  104. begin
  105.   if ActiveMDIChild <> nil then
  106.     ActiveMDIChild.Close;
  107. end;
  108.  
  109. procedure TMainForm.FileSaveItemClick(Sender: TObject);
  110. begin
  111.   { save current file (ActiveMDIChild points to the window) }
  112. end;
  113.  
  114. procedure TMainForm.FileSaveAsItemClick(Sender: TObject);
  115. begin
  116.   { save current file under new name }
  117. end;
  118.  
  119. procedure TMainForm.FileExitItemClick(Sender: TObject);
  120. begin
  121.   Close;
  122. end;
  123.  
  124. procedure TMainForm.CutItemClick(Sender: TObject);
  125. begin
  126.   {cut selection to clipboard}
  127. end;
  128.  
  129. procedure TMainForm.CopyItemClick(Sender: TObject);
  130. begin
  131.   {copy selection to clipboard}
  132. end;
  133.  
  134. procedure TMainForm.PasteItemClick(Sender: TObject);
  135. begin
  136.   {paste from clipboard}
  137. end;
  138.  
  139. procedure TMainForm.WindowCascadeItemClick(Sender: TObject);
  140. begin
  141.   Cascade;
  142. end;
  143.  
  144. procedure TMainForm.WindowTileItemClick(Sender: TObject);
  145. begin
  146.   Tile;
  147. end;
  148.  
  149. procedure TMainForm.WindowArrangeItemClick(Sender: TObject);
  150. begin
  151.   ArrangeIcons;
  152. end;
  153.  
  154. procedure TMainForm.WindowMinimizeItemClick(Sender: TObject);
  155. var
  156.   I: Integer;
  157. begin
  158.   { Must be done backwards through the MDIChildren array }
  159.   for I := MDIChildCount - 1 downto 0 do
  160.     MDIChildren[I].WindowState := wsMinimized;
  161. end;
  162.  
  163. procedure TMainForm.UpdateMenuItems(Sender: TObject);
  164. begin
  165.   FileCloseItem.Enabled := MDIChildCount > 0;
  166.   FileSaveItem.Enabled := MDIChildCount > 0;
  167.   FileSaveAsItem.Enabled := MDIChildCount > 0;
  168.   CutItem.Enabled := MDIChildCount > 0;
  169.   CopyItem.Enabled := MDIChildCount > 0;
  170.   PasteItem.Enabled := MDIChildCount > 0;
  171.   SaveBtn.Enabled := MDIChildCount > 0;
  172.   CutBtn.Enabled := MDIChildCount > 0;
  173.   CopyBtn.Enabled := MDIChildCount > 0;
  174.   PasteBtn.Enabled := MDIChildCount > 0;
  175.   WindowCascadeItem.Enabled := MDIChildCount > 0;
  176.   WindowTileItem.Enabled := MDIChildCount > 0;
  177.   WindowArrangeItem.Enabled := MDIChildCount > 0;
  178.   WindowMinimizeItem.Enabled := MDIChildCount > 0;
  179. end;
  180.  
  181. procedure TMainForm.FormDestroy(Sender: TObject);
  182. begin
  183.   Screen.OnActiveFormChange := nil;
  184. end;
  185.  
  186. end.
  187.